#pragma once
#include<stdio.h>
#include<assert.h>
#include<errno.h>
#include<stdlib.h>

typedef int DLDataType;

typedef struct DoubleList
{
	DLDataType data;
	struct DoubleList* next;
	struct DoubleList* prev;
}List;

void ListInit(List** pphead);
List* ListBuyNode(DLDataType x);
void ListPushBack(List** pphead,DLDataType x);
void ListPrint(List* phead);
void ListPushFront(List** pphead,DLDataType x);
void ListPopBack(List** pphead);
void ListPopFront(List** pphead);
List* ListFind(List* phead,DLDataType x);
void ListErase(List* pos, List** pphead);
void ListInsert(List* pos, List** pphead,DLDataType x);
void ListDestroy(List** pphead);